package main

import (
	"fmt"
	"net"
	"time"
)

func processClient(conn net.Conn) {
	// 向服务端发送文本消息"hello"
	conn.Write([]byte("hello"))

	for {
		buf := make([]byte, 1024)
		n, err := conn.Read(buf)

		// 出现读取错误时，关闭网络连接
		if err != nil {
			conn.Close()
			break
		}

		// 打印来自服务端的消息
		message := string(buf[0:n])
		fmt.Println("来自服务端的消息：", message)
	}
}

func main16() {
	// 循环100次，与服务端建立连接，以模拟多客户端连接的场景
	for i := 0; i < 100; i++ {
		conn, err := net.Dial("tcp", "127.0.0.1:8888")
		if err != nil {
			fmt.Println("客户端创建连接失败：", err.Error())
			return
		}
		// 在子协程中处理网络请求
		go processClient(conn)
	}

	time.Sleep(60 * time.Second)
}
